#include <stdio.h>
int main() {
	printf("第一道\n");
	int arr1[] = {100, 95, 10, 25, 65}; //总共有4个元素，一共20个字节
	int e = sizeof(arr1) / sizeof(int); //20个字节除4字节=5字节
	int *p = arr1;//定义指针p指向arr的地址
	for (int i = 0; i < e; i++) { //定义一个变量等于元素长度，获取下标进行计算
		printf("%d\n", *(p + i)); //*p+i=*p+0=100//*p+i=*p+1=95
	}


	printf("\n");
	printf("\n");
	printf("第二道\n");
	int arr2[] = {100, 95, 10, 25, 65}; //总共有4个元素，一共20个字节
	int *b = &arr2[3];//取到第3位  是25
	printf("%d\n%d\n%d\n%d\n%d\n", *(b - 3), *(b - 2), *b, *(b - 1), *b, *(b + 1)); // *(p-1)取到10,*(p-2)取到95,*(p-3)取到100,*(p+1)取到65

	printf("\n");
	printf("\n");
	printf("第三道\n");
	int arr3[] = {100, 95, 10, 25, 65}; //总共有4个元素，一共20个字节
	int e1 = sizeof(arr3) / sizeof(int);
	int *c = arr3;//取到第3位  是25
	for (int i = 0; i < e1; i++) {
		printf("%d\n", *c++); //输出指针变量p,p后缀自增，只要for执行，指针变量p就后缀自增加一。 可以理解为*(p++)
	}

	printf("\n");
	printf("\n");
	printf("第四道\n");
	int arr4[] = {100, 95, 10, 25, 65}; //总共有5个元素，一共20个字节
	int e2 = sizeof(arr4) / sizeof(int);
	int *d = arr4;//取到第3位  是25
	for (int i = 0; i < e2; i++) {
		//输出指针变量p,p后缀自增，只要for执行，指针变量p就后缀自增加一。 可以理解为*(p++)
		//输出 100, 95, 10, 25, 65
		printf("%d", *d++);
	}
	printf("\n");
	for (int i = 0; i < e2; i++) {
		//输出指针变量p,p前缀自增，只要for执行，指针变量p就前缀自增加一。 可以理解为*(++p)
		//输出 95, 10, 25, 65
		printf("%d", *++d);
	}
	printf("\n");
	for (int i = 0; i < e2; i++) {
		//输出指针变量p,指针变量p的值自增，只要for执行，指针变量p的值就前缀自增加一。 可以理解为*(p)++
		//输出 100,101,102,103,104
		printf("%d", (*d)++);
	}
	printf("\n");
}
